import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 26727
 * Date: 2024-04-17
 * Time: 9:26
 */
//646.最长数对链
class Solution4 {
    public int findLongestChain(int[][] pairs) {
        int n = pairs.length;
        //预处理 排序
        Arrays.sort(pairs,(a,b)->a[0]-b[0]);
        //1.dp表
        //dp[i]以i位置结尾的所有数对链中,最长的数对链长度
        int[] dp = new int[n];
        for(int i = 0; i < n; i++) {
            dp[i] = 1;
        }
        //2.状态表示
        int ret = 1;
        for(int i = 1; i < n; i++) {
            for(int j = i-1; j >= 0; j--) {
                if(pairs[j][1] < pairs[i][0]) {
                    dp[i] = Math.max(dp[j]+1,dp[i]);
                }
            }
            ret = Math.max(ret,dp[i]);
        }
        //3.初始化
        //4.填表顺序
        //5.返回值
        return ret;
    }
}
